package com.jdd.fintech.morse.plugin.enums;

import com.jdd.fintech.morse.plugin.constans.OpenApiConstans;
import com.jdd.fintech.morse.plugin.util.RSAUtil;

/**
 * @类描述: 加解密算法类型枚举
 * @类名称: EncrAndDecrAlgorithmTypeEnum
 * @操作人: ext.fengcheng
 * @操作时间: 2022/10/26 15:49
 * @类全路径: com.jdd.fintech.morse.plugin.ecrypts.EncrAndDecrAlgorithmTypeEnum
 * @项目名称: 
 **/
public enum EncrAndDecrAlgorithmTypeEnum {

	AES("AES", OpenApiConstans.AES_ECB_ENCRYPT_MODE),
	DES("DES", OpenApiConstans.DES_ENCRYPT_MODE),
	TRIPLE_DES("DESede", OpenApiConstans.TRIPLE_DES_ENCRYPT_MODE),
	SM4("SM4", OpenApiConstans.ALGORITHM_NAME_CBC_PADDING),
	//公用RSA非对称式加解密
	PUBLIC_RSA("PUBLIC_RSA", RSAUtil.KEY_ALGORITHM),
	//私有RSA非对称式加解密（针对某个机构进行开发使用）
	PRIVATE_RSA("PRIVATE_RSA", RSAUtil.KEY_ALGORITHM),
	;


	private final String value;
	private final String defaultCipher;

	/**
	 * 构造
	 * @param value 算法的字符串表示，区分大小写
	 */
	EncrAndDecrAlgorithmTypeEnum(String value, String defaultCipher) {
		this.value = value;
		this.defaultCipher = defaultCipher;
	}

	/**
	 * 获得算法的字符串表示形式
	 * @return 算法字符串
	 */
	public String getValue() {
		return this.value;
	}

	/**
	 * 算法的加密方式
	 * @return
	 */
	public String getDefaultCipher() {
		return defaultCipher;
	}
}